function typeof1(o) {
  // number string null undefined object symbol boolean function
  const type = Object.prototype.toString.call(o)
  switch (type) {
    case '[object Number]':
      return 'number'
    case '[object String]':
      return 'string'
    case '[object Undefined]':
      return 'undefined'
    case '[object Symbol]':
      return 'symbol'
    case '[object Boolean]':
      return 'boolean'
    case '[object Function]':
      return 'function'
    default:
      return 'object'
  }
}
